/*
 * Copyright 2008 Max Kugland
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.splink.asbeangen.templates;


public interface ITemplateClass extends IWritableClass {
	public static final int VAR_TYPE_CUSTOM = 0;
	public static final int VAR_TYPE_NATIVE = 1;
	public static final int VAR_TYPE_PCDATA = 2;

	public IClassTemplate getTemplate();

	public void addToImports(String classpath);

	public String getImports();

	public void addToConstructor(String name, String type, int vartype);

	public void addToMethods(String method, String type, int vartype);

	public String getMethods();

	public void addToMembers(String name, String type, int vartype);

	public String getMembers();
	
	public void addToAccessMethods(String name, String accessor, String type);
}
